home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / X11R4 / cmds / X / RCS / X.c,v < prev    next >
Encoding:
Text File  |  1991-01-09  |  1.5 KB  |  90 lines

  1. head     1.1;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.1
  10. date     91.01.08.23.27.46;  author jhh;  state Exp;
  11. branches ;
  12. next     ;
  13.  
  14.  
  15. desc
  16. @@
  17.  
  18.  
  19.  
  20. 1.1
  21. log
  22. @Initial revision
  23. @
  24. text
  25. @#include "sprite.h"
  26. #include "sys/file.h"
  27. #include "errno.h"
  28. #include "stdio.h"
  29. #include "dev/graphics.h"
  30. #include "sys/ioctl.h"
  31.  
  32. char    colorServer[] = "/X11/R4/cmds/Xcfbpmax";
  33. char    bwServer[] = "/X11/R4/cmds/Xmfbpmax";
  34.  
  35. main(argc, argv)
  36.     int        argc;
  37.     char    *argv[];
  38. {
  39.     int        fdPM;
  40.     int        isColor;
  41.     char    **newargv;
  42.     int        i;
  43.  
  44.     /*
  45.      * Determine the server type.
  46.      */
  47.     if ((fdPM = open("/dev/mouse", O_RDWR | O_NDELAY, 0)) < 0) {
  48.     fprintf(stderr, "couldn't open /dev/mouse \n");
  49.     return FALSE;
  50.     }
  51.     if (ioctl(fdPM, QIOISCOLOR, &isColor) < 0) {
  52.     extern int errno;
  53.     int en = errno;
  54.  
  55.     fprintf(stderr, "errno = %d, ", en);
  56.     fprintf(stderr, "error doing ioctl\n");
  57.     close(fdPM);
  58.     return FALSE;
  59.     }
  60.     close(fdPM);
  61.  
  62.     /*
  63.      * Copy the arguments.
  64.      */
  65.     newargv = (char **) malloc((argc + 1) * sizeof (char *));
  66.     if (isColor) {
  67.     newargv[0] = (char *) malloc(strlen(colorServer) + 1);
  68.     strcpy(newargv[0], colorServer);
  69.     } else {
  70.     newargv[0] = (char *) malloc(strlen(bwServer) + 1);
  71.     strcpy(newargv[0], bwServer);
  72.     }
  73.  
  74.     for (i = 1; i < argc ; i++) {
  75.     newargv[i] = (char *) malloc(strlen(argv[i]) + 1);
  76.     strcpy(newargv[i], argv[i]);
  77.     }
  78.     newargv[i] = NULL;
  79.  
  80.     /*
  81.      * Exec the server.
  82.      */
  83.     execvp(newargv[0], newargv);
  84.  
  85.     fprintf(stderr, "Unable to exec %s\n", newargv[0]);
  86.  
  87.     exit(1);
  88. }
  89. @
  90.